package cn.iotab.iotkit.server.demo.device.handler;

import cn.iotab.iotkit.transport.api.access.handler.DeviceSessionHandler;
import cn.iotab.iotkit.transport.api.common.message.msg.up.SessionEvent;
import cn.iotab.iotkit.transport.api.common.message.msg.up.SessionInfo;
import cn.iotab.iotkit.transport.api.common.message.msg.up.SessionReportInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

/**
 * Session 信息处理
 */
@Slf4j
@Component
public class MyDeviceSessionHandler implements DeviceSessionHandler {

    /**
     * 设备上下线通知
     *
     * @param sessionInfo
     * @param msg
     */
    @Override
    public void onDeviceSessionStateChange(SessionInfo sessionInfo, SessionEvent msg) {
        if (msg == SessionEvent.OPEN) {
            log.info("设备上线， productKey={}, deviceId={}", sessionInfo.getProductKey(), sessionInfo.getDeviceId());
        } else if (msg == SessionEvent.CLOSED) {
            log.info("设备下线， productKey={}, deviceId={}", sessionInfo.getProductKey(), sessionInfo.getDeviceId());
        } else {
            log.error("unknown SessionEvent:{}", msg);
        }
    }

    /**
     * session 状态定时上报，暂时用不上
     * @param sessionInfo
     * @param msg
     */
    @Override
    public void onDeviceSessionReport(SessionInfo sessionInfo, SessionReportInfo msg) {
        //do nothing
    }
}
